package NewCoder;

import java.util.LinkedList;
import java.util.Queue;

public class BM35 {
    public boolean isCompleteTree (TreeNode root) {
        // write code here
        if(root==null || root.left==null && root.right==null) return true;
        Queue<TreeNode> q=new LinkedList<>();
        q.add(root);
        boolean flag=false;
        while(!q.isEmpty()){
            int size=q.size();
            for(int i=0;i<size;i++){
                TreeNode node=q.poll();
                if(!flag){
                    if(node.left!=null && node.right!=null){
                        q.add(node.left);
                        q.add(node.right);
                    }else if(node.left==null && node.right!=null){
                        return false;
                    }else if(node.left!=null){
                        q.add(node.left);
                        flag=true;
                    }else{
                        flag=true;
                    }
                }else{
                    if(node.left!=null || node.right!=null){
                        return false;
                    }
                }
            }
        }
        return true;
    }
}
